import sqlalchemy

engine = sqlalchemy.create_engine('mysql://root:longbhu1214@123.56.253.79/testdb', echo=True)

meta_data = sqlalchemy.MetaData()

# 参数一：person 为表名字
"""
    参数一：person 为表名字
    参数二：MetaData 对象用于描述和管理数据库结构。 
    参数三：person 为表名字
"""
person = sqlalchemy.Table(
    "person", meta_data,
    sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True),
    sqlalchemy.Column("name", sqlalchemy.String(128), unique=True, nullable=False),  # nullable=False 不可为空
    sqlalchemy.Column("time", sqlalchemy.Date, nullable=False)
)

# meta_data.create_all(engine) 的作用是根据 MetaData 对象中的表格定义，在指定的数据库引擎 (engine) 中创建相应的表格。
meta_data.create_all(engine)

person_insert = person.insert()  # 返回的insert插入语句
print(person_insert)  # INSERT INTO person (id, name, time) VALUES (:id, :name, :time)

# insert_tom 是带数据的insert插入语句
insert_tom = person_insert.values(name="tom4", time="2024-1-1")



engine.connect().execute(insert_tom)

